This invention relates generally to large reconfigurable semiconductor memory structures and, more particularly, to the structure of a memory module or macrocell used in a large reconfigurable memory. A semiconductor integrated-circuit memory takes the form of a two-dimensional array of memory cells fabricated together on a single semiconductor chip. Each memory cell typically stores one binary digit or bit of information, and the array is usually designed to store multiple "words" of information, each word having the same number of bits. A common data word length is eight bits, which is referred to as a "byte." For convenience in handling binary cell addresses, the number of words in a memory array is usually a power of two, such as 1,024, 2,048, 4,096, and so forth. Each 1,024 words or bytes of memory is often referred to as "1k" of memory. For example, a 2k memory contains 2,048 words, bytes or bits of memory.
As the area of a semiconductor chip increases, so does the probability that there will be manufacturing defects within the chip. The production "yield" is the percentage of defect-free chips obtained in a production run. The probability of occurrence of manufacturing defects in a unit surface chip area is approximately constant for a particular fabrication process. Therefore, larger chips will have more defects and a lower yield of defect-free circuits. Although the area of a specific circuit can be decreased by further reducing the scale of integration, i.e. by reducing the size of the circuit features and their spacing, this will ultimately result in an increase in the number of defects and a reduction in the production yield.
An alternative to reducing the size of a circuit is to increase the effective production yield by rendering the resulting circuits more tolerant to defects, so that defective circuits can be repaired rather than discarded. Basically, this approach involves designing the circuit to include redundant or spare components, which can be connected into the circuit to replace components that have become defective. U.S. Pat. No. 4,800,302 to Marum, entitled "Redundancy System with Distributed Mapping," discloses a technique for mapping multiple subsystems, some of which may be defective.
Another source of defects is radiation damage. This is highly significant for applications of circuitry to be used in space, where memory cells are subject to damage by cosmic radiation. If only a single memory cell were to be damaged, the defect could be overcome by the use of an appropriate error detection and correction technique. A single-bit error in a relatively large data word can be detected and corrected in this way without the need for reconfiguring the circuitry. However, there is a high probability that a cosmic radiation "strike" on a memory cell would disable not just one cell, but several physically adjacent cells as well. If these damaged cells were all in the same data word, recovery by error detection and correction methods would not be possible. Accordingly, the ideal technique for configuring a memory circuit should be one that minimizes the effects of radiation damage.
Without some technique for increasing the production yield of semiconductor memory arrays, the size of such arrays is effectively limited and may not be easily increased to encompass an entire semiconductor wafer. U.S. Pat. No. 4,653,050 to Vaillancourt proposes a solution to this problem, whereby a large memory array comprises a number of memory modules, each of 1.times.N bits in size. The memory array is treated as having P logical "pages," each with N multibit words. Each module provides one bit of memory at the same bit position in every word in a logical page of memory. A damaged module therefore affects only one bit in each word, and the missing bit can be reconstructed using conventional error detection and correction techniques. A memory mapping module provides transformation from logical memory addresses to physical addresses within the modules. Although this approach is satisfactory in many applications, it has the disadvantage that a single, relatively complex memory mapping unit is responsible for mapping memory locations for the entire memory array.
An ideal wafer-scale memory array has the ability to distribute each bit of a stored data word to a different memory module. However, for a 32-bit data word, for example, this would appear to require that a 32-bit data bus be connected to each of the memory modules in the array. This routing of the data bus over a large area of the circuit would render the array more vulnerable to defects, whether resulting from manufacture or from radiation damage. Moreover, each data bus line would need to carry a capacitive load proportional to the total number of memory modules. For these reasons, any scheme for minimizing damage to the memory array should also minimize the extent to which the data bus has to be routed throughout the array. One approach to solving these problems was described and claimed in a Patent application Ser. No. 07/498,882 filed on Mar. 26, 1990 in the name of Cameron Wade now U.S. Pat. No. 5,103,424. Since each memory module is a basic "building block" of large memories of this type, it is important that the modules be structured in a manner that minimizes module complexity and the testing and configuration time. The present invention is directed to this end.